home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
PROGRAMM
/
PASCAL
/
0199.ZIP
/
JUNIOR16.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1986-02-08
|
3KB
|
70 lines
(* ********************************************* *)
(* *)
(* Many don't realize that you can use the *)
(* PCjr 160 x 200 Low Resolution 16 Color *)
(* mode from within Turbo Pascal. The short *)
(* procedure SetPCjr16Color actuates this *)
(* screen mode. Write and writeln work but *)
(* there is no string length checking. You *)
(* have text coordinates of 1..20,1..25. The *)
(* gotoxy statement will work. Plot and Draw *)
(* will also work, but there's a trick to get *)
(* them to work. You have to call a graphics *)
(* mode BEFORE you call SetPCjr16Color. I use *)
(* GraphMode. The call to a graphics mode *)
(* initializes the plot and draw routines by *)
(* (apparently) passing them some necessary *)
(* parameters. *)
(* Donald L. Pavia *)
(* Department of Chemistry *)
(* Western Washington University *)
(* Bellingham, WA 98225 *)
(* *)
(* January 1986 *)
(* ********************************************* *)
program Junior16Color;
var i,j,k,c : integer; Wait : char;
{----------------------------------------------------------------------}
procedure SetPCjr16col; { sets PCjr to 160x200 lo res 16 colors }
type RegRec = record AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags : integer; end;
var Regs : RegRec;
begin Regs.AX := $0008; intr($10,Regs) end;
{----------------------------------------------------------------------}
{ You must call graphmode to }
BEGIN { initialize turbo's plot and }
{ draw routines. Without this }
Clrscr; GraphMode; SetPCjr16Col; { call they will not work. }
draw (0,0,159,0,2);
TextColor (14); gotoxy (2,2); write ('HELLO');
TextColor (2); gotoxy (7,3); write ('THERE');
j := 36;
for i := 10 to 50 do begin
plot (i,j,i mod 16); draw (i+2,j,i+90,j,i mod 16);
j := j+2; end;
TextColor (14); gotoxy (1,17);
write ('This is a PCjr !!!!'); gotoxy (1,19);
for i := 1 to 20 do begin
k := i mod 16; if k = 0 then k := 7; c := 64 + i;
TextColor (k); write (chr(c)); end;
gotoxy (1,21);
for i := 1 to 20 do begin
K := i mod 16; if k = 0 then k := 7; c := 96 + i;
TextColor (k); write (chr(c)); end;
draw (0,199,159,199,2); gotoxy (1,23);
read (Kbd,Wait); TextMode (c80);
END.